//
// Copyright (c) 2011 Alex Nesterenko
//

#ifndef NANE_STDWRITEFILE__H
#   define  NANE_STDWRITEFILE__H

#   include "nane/core/crt/std/StdFileBase_.h"

namespace nane 
{
    class StdWriteFile
        : public StdFileBase
        , public SubSystemProduct<FileSystem::Implementation, StdWriteFile, IWriteFile>
    {
    public:
        StdWriteFile( FileSystem::Implementation* _creator, FILE* _interface, const char* _filename );
        ~StdWriteFile();
        
    public:
        void seek( uint32 _pos )
        {
            StdFileBase::seek(_pos);
        }
        
        uint32 tell()
        {
            return StdFileBase::tell();
        }
        
        uint32 size() const
        {
            return StdFileBase::size();
        }
        
        bool flush();
        uint32 write( const byte* _data, uint32 _count );
        
    };
}   // namespace nane

#endif	// NANE_STDWRITEFILE__H
